package sistkaraoke.modelo;

import java.util.ArrayList;
import java.util.Collection;

public class Comprobante implements IComprobante {
	private int id;
	private String fecha;
	private double monto;
	private ICajero cajero;
	private ICliente cliente;
	private IPedido pedido;
	private String numDocumento;
	private String tipoComprobante;
			
	private Collection<IDetalleComprobante> detComprobantes = new ArrayList<IDetalleComprobante>();
	
	public Comprobante() {
		
	}

	public Comprobante(int id, String fecha, double monto, ICajero cajero,
			ICliente cliente, Collection<IDetalleComprobante> detComprobantes) {
		super();
		this.id = id;
		this.fecha = fecha;
		this.monto = monto;
		this.cajero = cajero;
		this.cliente = cliente;
		this.detComprobantes = detComprobantes;
	}
	
	public String getTipoComprobante() {
		return tipoComprobante;
	}

	public void setTipoComprobante(String tipoComprobante) {
		this.tipoComprobante = tipoComprobante;
	}

	public String getNumDocumento() {
		return numDocumento;
	}

	public void setNumDocumento(String numDocumento) {
		this.numDocumento = numDocumento;
	}

	public IPedido getPedido() {
		return pedido;
	}

	public void setPedido(IPedido pedido) {
		this.pedido = pedido;
	}

	public ICliente getCliente() {
		return cliente;
	}

	public void setCliente(ICliente cliente) {
		this.cliente = cliente;
	}

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getFecha() {
		return fecha;
	}
	public void setFecha(String fecha) {
		this.fecha = fecha;
	}
	public double getMonto() {		
		/*
		monto = 0;		
		try
		{
			if (detComprobantes.size() > 0)
			{
				for(IDetalleComprobante detalle: detComprobantes)
				{
					if(detalle.getProducto().getPrecio() == 0)
						throw new SQLException("No existe precio en el proructo: " 
								+ detalle.getProducto().getIdProducto());
					monto += detalle.getProducto().getPrecio() * detalle.getCantidad();					
				}
			}
		
		} catch (SQLException e) {
			System.err.println(e.getMessage());
		}
		*/
		return monto;
	}
	public void setMonto(double monto) {
		this.monto = monto;
	}
	public ICajero getCajero() {
		return cajero;
	}
	public void setCajero(ICajero cajero) {
		this.cajero = cajero;
	}

	public Collection<IDetalleComprobante> getDetComprobantes() {
		return detComprobantes;
	}

	public void setDetComprobantes(Collection<IDetalleComprobante> detComprobantes) {
		this.detComprobantes = detComprobantes;
	}
	
}
